package com.example.demo.utils;

import com.example.demo.entity.User;

/**
 * 用户上下文工具类
 * 用于在线程本地变量中存储和获取当前用户信息
 */
public class UserContext {
    /**
     * 使用ThreadLocal存储当前线程的用户信息
     */
    private static final ThreadLocal<User> USER_THREAD_LOCAL = new ThreadLocal<>();

    /**
     * 设置当前线程的用户信息
     * @param user 用户信息
     */
    public static void setUser(User user) {
        USER_THREAD_LOCAL.set(user);
    }

    /**
     * 获取当前线程的用户信息
     * @return 用户信息
     */
    public static User getCurrentUser() {
        return USER_THREAD_LOCAL.get();
    }

    /**
     * 清除当前线程的用户信息
     */
    public static void removeUser() {
        USER_THREAD_LOCAL.remove();
    }
}